/**
 * @file shell_protocols.h
 * @brief Fichero con la descripcion de los formatos comunes de peticion y respuesta
 */

/**
 * Enumeracion con los posibles tipos de request
 */
typedef enum {REQ_CD, REQ_PWD, REQ_LS, REQ_RUN} Request_Type;


/**
 * Enumeracion con los posibles tipos de reply
 */
typedef enum {REP_OK, REP_ERR, REP_DATA} Reply_Type;

/**
 * Estructura abstracta que contiene la representacion logica de un Request
 * usada para su ejecucion
 */
typedef struct {
  Request_Type type; /*< Tipo de la peticion */
  char * parameters; /*< Parametros -puede ser NULL- */
} Request;

/* LEGACY
   Esta estructura pertenece a una iteración inicial del diseño, cuando
   pensabamos hacerlo más generico. Poco a poco nos dimos cuenta de que
   el procesado era tan simple que estructuras auxiliares eran de poca ayuda
   y descartamos esta, pero me da pena borrarla. Queda pues como un homenaje
   al diseño prematuro.
typedef struct {
  Reply_Type type;
  unsigned int reply_data_length;
} Reply;
*/

